package top.lyjwn.todo.weinxin.mch.pay;

import top.lyjwn.todo.weinxin.WXPayConfig;
import top.lyjwn.todo.weinxin.data.mch.*;
import top.lyjwn.todo.weinxin.data.mch.param.*;

/**
 * 微信支付接口
 *
 * @author luoyujie
 *
 */
public interface WXPay {



	/**
	 * 统一下单
	 * 
	 * @param unifiedOrder
	 * @return
	 */
	UnifiedOrderResult unifiedOrderApi(UnifiedOrder unifiedOrder);

	/**
	 * 查询订单
	 * 
	 * @param queryOrder
	 * @return
	 */
	QueryOrderResult queryOrderApi(QueryOrder queryOrder);

	/**
	 * 关闭订单
	 * 
	 * @param closeOrder
	 * @return
	 */
	CloseOrderResult closeOrderApi(CloseOrder closeOrder);

	/**
	 * 申请退款
	 * 
	 * @param applyRefund
	 * @return
	 */
	ApplyRefundResult applyRefundApi(ApplyRefund applyRefund);

	/**
	 * 查询退款
	 * 
	 * @param queryOrder
	 * @return
	 */
	QueryRefundResult queryRefundApi(QueryRefund queryOrder);

	/**
	 * 下载对账单
	 * 
	 * @param downloadBill
	 * @return
	 */
	DownloadBillResult downloadBillApi(DownloadBill downloadBill);

	/**
	 * 下载资金账单
	 * 
	 * @param downloadFundFlow
	 * @return
	 */
	DownloadFundFlowResult downloadFundFlowApi(DownloadFundFlow downloadFundFlow);

	/**
	 * 交易保障
	 * 
	 * @param report
	 * @return
	 */
	ReportResult reportApi(Report report);

	/**
	 * 拉取订单评价数据
	 * 
	 * @param batchQueryComment
	 * @return
	 */
	BatchQueryCommentResult batchQueryCommentApi(BatchQueryComment batchQueryComment);
}
